多线程是什么?有什么用?怎么用?
在2020年2月28日,二月的倒数第二天,我闲的学了一下多线程,虽说这玩意没啥用(
由于我也是刚刚才学的,所以这篇文章还在实时更新。
1 简介
在C++11版本中加入了<thread>头文件,此头文件主要声明了std::thread线程类。
2 用法
2.1 简单的例子
举一个特别简单的例子:
#include <iostream>
#include <thread>
#include <windows.h>
using namespace std;
void f1()
{
for (int i = 0; i < 10; ++i)
{
cout << "thread_1111\n";
sleep(1);
}
}
void f2()
{
for (int i = 0; i < 20; ++i)
{
cout << "thread_2222\n";
sleep(1);
}
}
int main()
{
thread th1(f1);
thread th2(f2);
th1.join();
th2.join();
cout << "main()"<<endl;
return 0;
}
是不是很简单?等会!join函数是用来干什么的?
join:调用该函数会阻塞当前线程。阻塞调用者(caller)所在的线程直至被join的std::thread对象标识的线程执行结束。
你:这什么鬼!说人话!!!
我:也就是说,必须将线程join或者detach 等待子线程结束主进程才可以退出!!!
我:学会了吗?
你:等等,你只给我看了代码,可是并不能体现多线程的作用!
我:再给你看个输出。
可以看出,线程1与线程2是交替执行的。